home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
SETDRIVE.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-10-18
|
1KB
|
44 lines
'----------------------------------------------------------
' PROGRAM: SETDRIVE.BAS PROGRAMMER: A. KELLETT
' DATE-WRITTEN: 10/18/91
' USING POWER BASIC V2.10A
'
' THIS PROGRAM SETS THE CURRENT DRIVE TO THE USER-SPECIFIED
' DRIVE LETTER.
' VERSION: 0.00 LAST UPDATED: 00/00/00
'----------------------------------------------------------
CLS
INPUT "NEW DRIVE [ABCD etc]: ";DRIVE$
DRIVE% = ASC(UCASE$(DRIVE$)) - 65 :'** MAKE A=0, B=1, C=2, ETC
CALL SETDRIVE(DRIVE%)
IF DRIVE% = 99 THEN
PRINT "INVALID DRIVE!"
ELSE
PRINT "CURRENT DRIVE IS NOW: ";CHR$(DRIVE% + 65)
END IF
END
'
' SET DRIVE OR RETURN AN ERROR
'----------------------------------------------------------
SUB SETDRIVE (DRIVE%)
%FL = 0: %AX = 1: %BX = 2: %CX = 3: %DX = 4
%SI = 5: %DI = 6: %BP = 7: %DS = 8: %ES = 9
REG %AX, &H0E00 ' SET AH FOR SET DRIVE SERVICE
REG %DX, DRIVE% ' SET DL TO SPECIFIED DRIVE
CALL INTERRUPT &H21 ' CALL DOS TO DO IT
REG %AX, &H1900 ' SET AH FOR GET DRIVE SERVICE
CALL INTERRUPT &H21 ' ASK DOS FOR CURRENT DRIVE
NEWDRIVE% = REG(%AX) AND &HFF ' DRIVE IS NOW IN AX - CLEAR
' HIGH PART (AH) USING AND
IF NEWDRIVE% <> DRIVE% Then ' IF THE NEW DRIVE ISN'T WHAT
DRIVE% = 99 ' WAS SPECIFIED, THEN ERROR
ELSE
DRIVE% = NEWDRIVE%
END IF
END SUB